LOADING...

dadada~

loading

两道小模拟


感觉是很难说的一种题型,小模拟陶冶情操大模拟直接吐属于是(那我写的肯定是陶冶情操那一类

假期一直一直一直一直摸鱼,最后认认真真写了一点儿题解的就两道ez题😭

扫雷游戏

  • char型二维数组,要考虑边界情况
  • 因为数据范围不大,所以我直接从下标为1开始输入,就可以不用处理边界了
  • 一开始的思路是统计每个?周围的*个数,但是真的很麻烦
  • 突然想到可以把?换成0,然后把*周围一圈的数组元素全部+1输出

代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie();
    cout.tie(); 
    char a[150][150];
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            if(a[i][j]=='?') a[i][j]='0';
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]=='*'){
                if(a[i-1][j-1]!='*') a[i-1][j-1]++;
                if(a[i-1][j]!='*') a[i-1][j]++;
                if(a[i-1][j+1]!='*') a[i-1][j+1]++;
                if(a[i+1][j-1]!='*') a[i+1][j-1]++;
                if(a[i+1][j]!='*') a[i+1][j]++;
                if(a[i+1][j+1]!='*') a[i+1][j+1]++; 
                if(a[i][j-1]!='*') a[i][j-1]++;
                if(a[i][j+1]!='*') a[i][j+1]++;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<a[i][j];
        }
        cout<<"\n";
    }
    return 0;
}

乒乓球

  • 时隔八百年我又回来写了,这个题第一次看就觉得脑袋疼,这种比赛规则题一般都要读好久题(不爱运动怪我
  • 一开始就没读懂题,以为是单纯计算”W”和”L”的数量特判输出,结果是忽略了分差高于2才算胜利才能结束,WAWAWA
  • scanf用正则学到了,好耶
  • 用自定义函数可以缩短代码,我怎么没想到.jpg

代码:

#include <bits/stdc++.h>
using namespace std;
char s[65000];
int main(){
    ios::sync_with_stdio(false);
    cin.tie();
    cout.tie();
    scanf("%[^E]",s);
    int w=0,l=0;
    for(int i=0;s[i]!='\0';i++){
        if(s[i]=='W') w++;
        else if(s[i]=='L') l++;
        if((w>=11||l>=11)&&abs(w-l)>=2){
            cout<<w<<":"<<l<<"\n";
            l=w=0;
        }
    }
    cout<<w<<":"<<l<<"\n\n";
    w=l=0;
    for(int i=0;s[i]!='\0';i++){
        if(s[i]=='W') w++;
        else if(s[i]=='L') l++;
        if((w>=21||l>=21)&&abs(w-l)>=2){
            cout<<w<<":"<<l<<"\n";
            l=w=0;
        }
    }
    cout<<w<<":"<<l<<"\n";
    return 0;
}